Código SQL copiado para a área de transferência
RU EN FR

Lição 1.1: Introdução a Bases de Dados

Bem-vindo ao excitante mundo das bases de dados! Nesta primeira lição, vamos estabelecer as bases, compreendendo o que são as bases de dados, porque são cruciais no mundo atual orientado por dados e os conceitos fundamentais que exploraremos ao longo deste curso.

O Que é uma Base de Dados?

No seu núcleo, uma base de dados é uma coleção organizada de informação estruturada, ou dados, tipicamente armazenada eletronicamente num sistema informático. Pense nela como um sofisticado arquivo digital. Em vez de documentos em papel espalhados por todo o lado, uma base de dados fornece uma maneira estruturada de armazenar, gerir e recuperar informações de forma eficiente.

Características Chave de uma Base de Dados:

  • Organizada: Os dados são estruturados de uma maneira específica, facilitando a sua localização e gestão. Esta estrutura é muitas vezes baseada em tabelas com linhas e colunas.
  • Persistente: Os dados armazenados numa base de dados são tipicamente persistentes, o que significa que permanecem armazenados mesmo quando a aplicação que os utiliza é fechada ou o computador é desligado.
  • Partilhada: Vários utilizadores e aplicações podem muitas vezes aceder e interagir com a mesma base de dados simultaneamente.
  • Gerida: Sistemas de Gestão de Bases de Dados (SGBD) são aplicações de software que permitem definir, criar, manter e aceder a bases de dados. Exemplos incluem MariaDB, PostgreSQL, MySQL, SQLite, Oracle e Microsoft SQL Server.

Por Que as Bases de Dados São Importantes?

As bases de dados são a espinha dorsal de inúmeras aplicações e sistemas que usamos todos os dias. Aqui estão apenas algumas razões pelas quais são tão importantes:

  • Armazenamento de Dados: Fornecem uma maneira fiável e eficiente de armazenar grandes volumes de dados.
  • Recuperação de Dados: Permitem a recuperação rápida e fácil de informações específicas com base em critérios definidos.
  • Gestão de Dados: Os SGBD fornecem ferramentas para organizar, atualizar e manter a integridade dos dados.
  • Partilha de Dados: Permitem que vários utilizadores e aplicações acedam e partilhem dados de forma controlada.
  • Análise de Dados: Dados estruturados em bases de dados são essenciais para realizar análises, gerar relatórios e obter informações valiosas.
  • Desenvolvimento de Aplicações: A maioria das aplicações modernas depende de bases de dados para armazenar e gerir os seus dados, desde plataformas de redes sociais a websites de comércio eletrónico.

Tipos de Bases de Dados (Breve Visão Geral)

Embora este curso se concentre principalmente em Bases de Dados Relacionais, é útil ter uma compreensão básica de outros tipos:

  • Bases de Dados Relacionais (BDR): Organizam os dados em tabelas com linhas e colunas, estabelecendo relações entre tabelas através de chaves. Exemplos: MariaDB, PostgreSQL, MySQL, SQLite. Este é o tipo em que nos focaremos.
  • Bases de Dados NoSQL: Uma ampla categoria de bases de dados que não seguem o modelo relacional tradicional. São frequentemente usadas para lidar com dados não estruturados ou semiestruturados e para escalabilidade em ambientes distribuídos. Exemplos: MongoDB, Cassandra, Redis.
  • Bases de Dados em Memória: Armazenam dados principalmente na memória do computador para acesso mais rápido. Frequentemente usadas para caching ou aplicações que exigem latência muito baixa. Exemplos: Redis (também pode ser persistente), Memcached.

O Que é um SGBD?

Um Sistema de Gestão de Bases de Dados (SGBD) é um software que atua como intermediário entre os utilizadores (ou aplicações) e a própria base de dados. Fornece uma forma sistemática e controlada de criar, ler, atualizar e eliminar dados, garantindo simultaneamente segurança, consistência e eficiência. Em inglês, usa-se a sigla DBMS (Database Management System).

DBMS overview

Funções Principais de um SGBD:

  • Definição de Dados: Permite definir a estrutura (esquema) da base de dados — criar tabelas, especificar tipos de dados, definir restrições e estabelecer relações.
  • Manipulação de Dados: Fornece mecanismos para inserir, atualizar, eliminar e consultar dados (tipicamente através de SQL).
  • Gestão do Armazenamento de Dados: Gere a forma como os dados são fisicamente armazenados em disco, incluindo indexação, buffers e otimização do armazenamento para acesso rápido.
  • Gestão de Transações: Garante que uma série de operações seja inteiramente bem-sucedida ou inteiramente cancelada, mantendo a base de dados num estado consistente. Isto é regido pelas propriedades ACID: Atomicidade, Consistência, Isolamento e Durabilidade.
  • Controlo de Concorrência: Gere o acesso simultâneo de vários utilizadores ou aplicações, prevenindo conflitos e corrupção de dados quando várias pessoas modificam dados ao mesmo tempo.
  • Controlo de Acesso e Segurança: Aplica autenticação e autorização — controla quem pode ligar-se à base de dados e que operações estão autorizados a executar.
  • Backup e Recuperação: Fornece ferramentas e mecanismos para fazer backup dos dados e restaurar a base de dados para um estado consistente após uma falha.
  • Integridade dos Dados: Aplica regras (restrições) que mantêm os dados precisos e válidos, como garantir que um valor é único ou que uma referência a outra tabela realmente existe (integridade referencial).

Exemplos conhecidos de SGBD incluem MariaDB, PostgreSQL, MySQL, SQLite, Oracle Database e Microsoft SQL Server.

Ferramentas GUI para SGBD — E a Sua Diferença do SGBD

Uma ferramenta GUI (Interface Gráfica do Utilizador) para SGBD é uma aplicação de ambiente de trabalho ou web separada que fornece uma interface visual e fácil de usar para interagir com um SGBD. Enquanto o SGBD é o motor que armazena e processa os dados, uma ferramenta GUI é simplesmente um cliente que se liga ao SGBD e envia comandos em seu nome.

Exemplos de ferramentas GUI populares para SGBD:

FerramentaCompatível com
DBeaverMariaDB, PostgreSQL, MySQL, SQLite, e muito mais
TablePlusMariaDB, PostgreSQL, MySQL, SQLite, e mais
pgAdminPostgreSQL
MySQL WorkbenchMySQL / MariaDB
DataGripA maioria dos principais SGBD
HeidiSQLMariaDB, MySQL, PostgreSQL
DB Browser for SQLiteSQLite

Principais diferenças entre um SGBD e uma ferramenta GUI:

AspetoSGBDFerramenta GUI para SGBD
PapelO motor da base de dados — armazena, gere e processa dadosUma aplicação cliente — liga-se ao SGBD para exibir e editar dados
Obrigatório?Sim — não é possível armazenar ou consultar dados sem eleNão — ferramenta de conveniência opcional; o SGBD funciona sem ela
Executa onde?Tipicamente num servidor (ou localmente para SQLite)Na máquina do programador ou administrador
InterfaceLinha de comandos / API programáticaJanelas visuais, editores de consultas, navegadores de tabelas
CapacidadesControlo total sobre armazenamento, transações, segurançaSubconjunto das funcionalidades do SGBD, apresentado visualmente

Em resumo, o SGBD é o motor e a ferramenta GUI é o painel de instrumentos. Pode-se conduzir sem painel de instrumentos, mas o painel torna muito mais fácil ver o que está a acontecer e controlar as coisas. Ao longo deste curso, interagiremos principalmente com bases de dados usando diretamente SQL — a linguagem compreendida por qualquer SGBD — independentemente da ferramenta GUI que possa escolher usar.

Bases de Dados Relacionais: O Nosso Foco

Para este curso, vamos mergulhar fundo nas Bases de Dados Relacionais e na SQL (Structured Query Language) usada para interagir com elas. O modelo relacional, com a sua estrutura bem definida e poderosas capacidades de consulta, continua a ser a pedra angular da gestão e análise de dados.

Na próxima lição, vamos aprofundar os conceitos fundamentais das bases de dados relacionais, incluindo tabelas, colunas, linhas e o papel crucial das chaves.

Principais Conclusões Desta Lição:

  • Uma base de dados é uma coleção organizada e persistente de dados estruturados.
  • As bases de dados são essenciais para armazenar, gerir, recuperar e partilhar informações.
  • Um SGBD é o motor de software que armazena, gere e controla o acesso a uma base de dados — fornecendo definição de dados, manipulação, gestão de transações, segurança, e muito mais.
  • Uma ferramenta GUI para SGBD é uma aplicação cliente opcional que fornece uma interface visual para um SGBD — é separada do próprio SGBD.
  • Concentrar-nos-emos principalmente em Bases de Dados Relacionais (BDR) e SQL neste curso.

Bem-vindo a bordo! Vamos continuar a nossa jornada no mundo do SQL.